#include<stdio.h>
#include<malloc.h>

int n;

typedef struct
{
    int top1;
    int top2;
    int data[100];
}SqStack;

int main()
{
    int n,temp,tag,count,flag=0;
    scanf("%d",&n);
    SqStack S;
    S.top1=0;
    S.top2=n-1;
    for(int i=0;i<n;i++)
    {
        S.data[i]=-1;
    }
    scanf("%d",&temp);
    int i=0;
    char judge=' ';
    while(1)
    {
        if(judge==' '  && flag==0  &&temp!=-1)
        {
            S.data[i]=temp;
            scanf("%d",&temp);
            i++;
            S.top1++;
        }
        if(judge==' '  && flag==1  &&temp!=-1)
        {
            S.data[i]=temp;
            scanf("%d",&temp);
            i++;
            S.top2--;
        }
        if(judge=='#')
        {
            i++;
            flag=1;
            temp=-1;
            scanf("%d",&temp);
        }
        if(judge=='\n')
        {
            S.data[i]=temp;
            S.top2--;
            break;
        }
        judge=getchar();
    }
    while(scanf("%d %d",&tag,&temp)!=EOF)
    {
        if(tag%2==0)  S.data[S.top1++]=temp;
        else          S.data[S.top2--]=temp;
    }
    for(int i=0;i<n;i++)
    {
        if(S.data[i]>=0) printf("%d",S.data[i]);
        if(S.data[i]<=0) printf("#");
        if(i!=n-1) printf(" ");
    }
}